home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / PWAEBL11.ZIP / EBL.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-05-11  |  4KB  |  380 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     String   STRING001
  22.     String   STRING002
  23.     String   STRING003
  24.     String   STRING004
  25.     String   STRING005
  26.     String   STRING012
  27.     Byte     BYTE001
  28.     Byte     BYTE002
  29.     Byte     BYTE003
  30.     Byte     BYTE004
  31.     Byte     BYTE005
  32.     Byte     BYTE006
  33.     Byte     BYTE007
  34.     Byte     BYTE008
  35.     Declare  Procedure PROC001()
  36.     Declare  Procedure PROC002()
  37.     Declare  Procedure PROC003(Byte BYTE009, Var Byte BYTE010, Var Byte BYTE011)
  38.     Declare  Procedure PROC005()
  39.     Declare  Procedure PROC006(Byte BYTE014)
  40.     Declare  Procedure PROC007()
  41.     Declare  Procedure PROC008(Byte BYTE012)
  42.     Declare  Procedure PROC009(Byte BYTE013)
  43.     Declare  Procedure PROC010(String STRING011)
  44.  
  45. ;------------------------------------------------------------------------------
  46.  
  47.     PROC001()
  48.     PROC005()
  49.     PROC002()
  50.     End
  51.  
  52. ;------------------------------------------------------------------------------
  53.  
  54.     Procedure PROC002()
  55.  
  56.     Boolean  BOOLEAN002
  57.     Byte     BYTE006
  58.     Byte     BYTE007
  59.     Byte     BYTE008
  60.  
  61.     AnsiPos BYTE003, BYTE002
  62.     BYTE008 = BYTE002
  63.     PROC008(BYTE008)
  64.     BYTE006 = 1
  65.     BOOLEAN002 = 0
  66.     :LABEL001
  67.     If (BOOLEAN002) Goto LABEL002
  68.     BYTE007 = Asc(Inkey())
  69.     Delay 1
  70.     Select Case (BYTE007)
  71.         Case 13
  72.             PROC006(BYTE006)
  73.             PROC005()
  74.             PROC008(BYTE008)
  75.         Case 76, 85, 56
  76.             PROC009(BYTE008)
  77.             Dec BYTE006
  78.             If (BYTE006 < 1) BYTE006 = BYTE001
  79.             BYTE008 = BYTE008 - BYTE004
  80.             If (BYTE008 < BYTE002) BYTE008 = BYTE002 + (BYTE001 - 1) * BYTE004
  81.             PROC008(BYTE008)
  82.         Case 82, 68, 50
  83.             PROC009(BYTE008)
  84.             Inc BYTE006
  85.             If (BYTE006 > BYTE001) BYTE006 = 1
  86.             BYTE008 = BYTE008 + BYTE004
  87.             If (BYTE008 > BYTE002 + BYTE001 * BYTE004 - 1) BYTE008 = BYTE002
  88.             PROC008(BYTE008)
  89.         Case 69
  90.             PROC009(BYTE008)
  91.             BYTE006 = BYTE001
  92.             BYTE008 = BYTE002 + (BYTE001 - 1) * BYTE004
  93.             PROC008(BYTE008)
  94.         Case 72
  95.             PROC009(BYTE008)
  96.             BYTE006 = 1
  97.             BYTE008 = BYTE002
  98.             PROC008(BYTE008)
  99.         Case 27, 81, 113
  100.             BOOLEAN002 = 1
  101.         Case Else
  102.             PROC003(Asc(Lower(Chr(BYTE007))) - 96, BYTE008, BYTE006)
  103.     End Select
  104.     Goto LABEL001
  105.     :LABEL002
  106.     PROC007()
  107.  
  108.     EndProc
  109.  
  110.  
  111. ;------------------------------------------------------------------------------
  112.  
  113.     Procedure PROC003(Byte BYTE009, Var Byte BYTE010, Var Byte BYTE011)
  114.  
  115.     If ((BYTE009 >= 1) && (BYTE009 <= BYTE001)) Then
  116.         PROC009(BYTE010)
  117.         BYTE010 = BYTE010 + (BYTE009 - BYTE011) * BYTE004
  118.         PROC008(BYTE010)
  119.         BYTE011 = BYTE009
  120.         PROC006(BYTE011)
  121.         PROC005()
  122.         PROC008(BYTE010)
  123.     Endif
  124.  
  125.     EndProc
  126.  
  127.  
  128. ;------------------------------------------------------------------------------
  129.  
  130.     Procedure PROC007()
  131.  
  132.     AnsiPos 1, U_PageLen
  133.     DefColor
  134.     PrintLn "@X08Enhanced Bulletin Lister v1.1 by Drew [PWA]@X07"
  135.  
  136.     EndProc
  137.  
  138.  
  139. ;------------------------------------------------------------------------------
  140.  
  141.     Procedure PROC008(Byte BYTE012)
  142.  
  143.     STRING004 = ScrText(BYTE003, BYTE012, BYTE005, 1)
  144.     AnsiPos BYTE003, BYTE012
  145.     Print STRING003 + StripAtx(STRING004)
  146.  
  147.     EndProc
  148.  
  149.  
  150. ;------------------------------------------------------------------------------
  151.  
  152.     Procedure PROC009(Byte BYTE013)
  153.  
  154.     AnsiPos BYTE003, BYTE013
  155.     Print STRING004
  156.  
  157.     EndProc
  158.  
  159.  
  160. ;------------------------------------------------------------------------------
  161.  
  162.     Procedure PROC005()
  163.  
  164.     Cls
  165.     DispFile STRING002, 0
  166.  
  167.     EndProc
  168.  
  169.  
  170. ;------------------------------------------------------------------------------
  171.  
  172.     Procedure PROC006(Byte BYTE014)
  173.  
  174.     String   STRING005
  175.  
  176.     FOpen 1, STRING001, 0, 2
  177.     FSeek 1, (BYTE014 - 1) * 30, 0
  178.     FRead 1, STRING005, 30
  179.     FClose 1
  180.     AnsiPos 1, U_PageLen
  181.     DispFile RTrim(STRING005, " "), 0
  182.     If (BOOLEAN001) Wait
  183.  
  184.     EndProc
  185.  
  186.  
  187. ;------------------------------------------------------------------------------
  188.  
  189.     Procedure PROC001()
  190.  
  191.     Byte     BYTE015
  192.     Byte     BYTE016
  193.     Byte     BYTE017
  194.     String   STRING006
  195.     String   STRING007
  196.     String   STRING008
  197.     String   STRING009
  198.     String   STRING010
  199.     Boolean  BOOLEAN003
  200.  
  201.     WrUNet PcbNode(), "Q", UN_Name(), UN_City(), "EBL: Viewing bulletins", " "
  202.     BYTE015 = TokCount()
  203.     If (BYTE015) Then
  204.         STRING008 = "B "
  205.         For BYTE016 = 1 To BYTE015
  206.             STRING008 = STRING008 + " " + GetToken()
  207.         Next
  208.         KbdStuff STRING008
  209.         End
  210.     Endif
  211.     STRING006 = ReadLine(PCBDat(), 31)
  212.     If (Exist(STRING006)) Goto LABEL003
  213.     PrintLn STRING006 + " does not exist.  Bad path in PCBOARD.DAT"
  214.     End
  215.     :LABEL003
  216.     STRING002 = ReadLine(STRING006, CurConf() * 33 + 24)
  217.     STRING001 = ReadLine(STRING006, CurConf() * 33 + 25)
  218.     If (Exist(STRING001)) Goto LABEL004
  219.     KbdStuff "B"
  220.     End
  221.     :LABEL004
  222.     BYTE001 = FileInf(STRING001, 4) / 30
  223.     STRING007 = PPEPath() + "EBL.CFG"
  224.     If (Exist(STRING007)) Goto LABEL005
  225.     PrintLn "@X0CError!  " + STRING007 + " does not exist!@X07"
  226.     End
  227.     :LABEL005
  228.     FOpen 1, STRING007, 0, 2
  229.     FDefIn 1
  230.     FDGet STRING008
  231.     If (Lower(STRING008) == "yes") Then
  232.         BOOLEAN001 = 1
  233.     Else
  234.         BOOLEAN001 = 0
  235.     Endif
  236.     FDGet STRING010
  237.     FDGet STRING008
  238.     BOOLEAN003 = 0
  239.     While (STRING008 <> "<eof>") Do
  240.         Tokenize STRING008
  241.         STRING009 = GetToken()
  242.         If ((Lower(STRING009) == "main") && (CurConf() == 0)) Then
  243.             BOOLEAN003 = 1
  244.             Break
  245.             Continue
  246.         Endif
  247.         BYTE017 = S2I(STRING009, 10)
  248.         If ((CurConf() <> 0) && (BYTE017 == CurConf())) Then
  249.             BOOLEAN003 = 1
  250.             Break
  251.             Continue
  252.         Endif
  253.         FDGet STRING008
  254.     EndWhile
  255.     FClose 1
  256.     If (BOOLEAN003) Then
  257.         BYTE002 = S2I(GetToken(), 10)
  258.         BYTE003 = S2I(GetToken(), 10)
  259.         BYTE004 = S2I(GetToken(), 10)
  260.         BYTE005 = S2I(GetToken(), 10)
  261.         STRING003 = GetToken()
  262.     Else
  263.         PROC010(STRING010)
  264.     Endif
  265.     GetUser
  266.  
  267.     EndProc
  268.  
  269.  
  270. ;------------------------------------------------------------------------------
  271.  
  272.     Procedure PROC010(String STRING011)
  273.  
  274.     String   STRING012
  275.  
  276.     Newline
  277.     InputStr STRING011, STRING012, 7, 3, Mask_Num() + Chr(13), 8192 + 64
  278.     If (STRING012 <> "") Then
  279.         KbdStuff "B " + STRING012
  280.     Endif
  281.     End
  282.  
  283.     EndProc
  284.  
  285.  
  286. ;------------------------------------------------------------------------------
  287. ;
  288. ; Usage report (before postprocessing)
  289. ;
  290. ; ■ Statements used :
  291. ;
  292. ;    6       End
  293. ;    1       Cls
  294. ;    1       Wait
  295. ;    34      Goto 
  296. ;    40      Let 
  297. ;    2       Print 
  298. ;    3       PrintLn 
  299. ;    24      If 
  300. ;    2       DispFile 
  301. ;    2       FOpen 
  302. ;    2       FClose 
  303. ;    1       GetUser
  304. ;    1       DefColor
  305. ;    1       InputStr 
  306. ;    1       Delay 
  307. ;    1       Inc 
  308. ;    1       Dec 
  309. ;    1       Newline
  310. ;    1       Tokenize 
  311. ;    3       KbdStuff 
  312. ;    1       WrUNet 
  313. ;    5       AnsiPos 
  314. ;    1       FSeek 
  315. ;    1       FRead 
  316. ;    1       FDefIn 
  317. ;    4       FDGet 
  318. ;    9       EndProc
  319. ;
  320. ;
  321. ; ■ Functions used :
  322. ;
  323. ;    7       *
  324. ;    1       /
  325. ;    18      +
  326. ;    7       -
  327. ;    16      ==
  328. ;    3       <>
  329. ;    3       <
  330. ;    2       <=
  331. ;    2       >
  332. ;    3       >=
  333. ;    19      !
  334. ;    5       &&
  335. ;    7       ||
  336. ;    3       Lower()
  337. ;    2       Chr()
  338. ;    2       Asc()
  339. ;    1       RTrim()
  340. ;    1       StripAtx()
  341. ;    1       Inkey()
  342. ;    1       Mask_Num()
  343. ;    5       CurConf()
  344. ;    1       PCBDat()
  345. ;    1       PPEPath()
  346. ;    1       PcbNode()
  347. ;    3       ReadLine()
  348. ;    1       UN_Name()
  349. ;    1       UN_City()
  350. ;    7       GetToken()
  351. ;    3       Exist()
  352. ;    5       S2I()
  353. ;    1       FileInf()
  354. ;    1       TokCount()
  355. ;    1       ScrText()
  356. ;
  357. ;------------------------------------------------------------------------------
  358. ;
  359. ; Analysis flags : d
  360. ;
  361. ; d - Access PCBOARD.DAT ■ 2
  362. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  363. ;     for many PPE so they can find various informations on the system
  364. ;     (system paths, max number of lines in messages, ...) but it may also
  365. ;     be a way to gather vital informations.
  366. ;     ■ Search for : PCBDAT()
  367. ;
  368. ;------------------------------------------------------------------------------
  369. ;
  370. ; Postprocessing report
  371. ;
  372. ;    1       For/Next
  373. ;    1       While/EndWhile
  374. ;    7       If/Then or If/Then/Else
  375. ;    1       Select Case
  376. ;
  377. ;------------------------------------------------------------------------------
  378. ;                 AEGiS Corp - Break the routines, code against the machines!
  379. ;------------------------------------------------------------------------------
  380.